package priv.lirenhe.dissertation.utils;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class CollectionUtil implements Comparator<String>{
	
    public static Map<String,String> getSortedMap(Map<String,String> map){
    	Map<String,String> linkedMap = new LinkedHashMap<String,String>();
        Set<String> keySet = map.keySet();    //获取map集合的所有键的Set集合（于Set集合中无序存放）
        List<String> list = new ArrayList<String>(keySet);    //新建List集合获取Set集合的所有元素（键对象）（顺序与Set集合一样）
        
        Collections.sort(list, new CollectionUtil());
        
        Iterator<String> iter = list.iterator();    //获取List集合的迭代器,String为迭代元素的类型
        while(iter.hasNext()){
            String key = iter.next();
            String value = map.get(key);
            linkedMap.put(key, value);
        }
		return linkedMap;
    }
    
    @Override
    public int compare(String key1, String key2){
    	return key1.compareTo(key2);    //升序排序; String作为api提供的类，实现了Comparable的compareTo方法被设计成小于、等于、大于分别返回负数、零、正数
    }

}
